/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package calculadora;
import java.util.*;
/**
 *
 * @author OAKLAND
 */
public class operaciones<E> implements interfaz{
    Vector<E> info=new Vector<E>();
    Vector<String> operadores=new Vector<String>();
    Vector<Integer> numeros=new Vector<Integer>();
    
    @Override
    public void ingresar(String a){
        String [] campos = a.split("\\s+");
        for(int i=0; i<campos.length;i++){
            info.add(i,(E)campos[i]);
        }
             
    }
    public void identificar(){
        String [] informacion = new String[info.size()];
        for(int i=info.size()-1;i>0;i--){
            switch((String)info.get(i)){
                case "+": 
                    operadores.add("+");
                    break;
                case "-": 
                    operadores.add("-");
                    break;
                case "/": 
                    operadores.add("/");
                    break;
                case "*": 
                    operadores.add("*");
                    break;
                default:
                    int o=Integer.parseInt((String)info.get(i));
                    numeros.add(o);
                    break;
                   
                
            }
            informacion[i]=(String)info.get(i);
            
        }
    }
    public int operar(){
        int resultado = 0;
        int i=numeros.size()-1;
        for(int o=operadores.size()-1;o>=0;o--){
            for(int j=0;j<2;j++){
           switch((String)operadores.get(o)){
                case "+": 
                    resultado+=(numeros.get(i));
                    break;
                case "-": 
                    resultado-=(numeros.get(i));
                    break;
                case "/": 
                    if(resultado==0)
                     resultado=1;
                    resultado/=(numeros.get(i));
                    break;
                case "*": 
                    if (resultado==0)
                        resultado=1;
                     resultado*=(numeros.get(i));
                    break;
                
                
           }
           if(i!=0)
               i--;
            }
        }
        
        return resultado;
    }
    public void clean(){
        info.clear();
        operadores.clear();
        numeros.clear();
    }
    
}
